package find.the.first.nonrepeating.character;
/**
 * @Time 2019/12/22
 * @author 王光浩
 * @Need  给定一个字符串，找到该字符串中第一个不重复的字符，并将其下标返回，如果不存在则返回-1。（字符串中只包含小写字母）
 * @Thingking it is amazing.
 *            思路：遍历整个字母表，将字符串中的元素分别首位和giant字母比较，如果在该字符串中存在多个该字母
 *                  则进行下一轮循环，否则将该字母在字符串中的下标和最小下标比较，找出更小的那一个，最后返回
 *                  我们保存的最小下标。
 */
public class BestMethod {
    public int firstUniqChar(String s) {
    	int index=s.length();    //保存最小下标
    	int first;
    	int last;
    	for(char i='a';i<='z';i++) {
    		first=s.indexOf(i);
    		last=s.lastIndexOf(i);
    		if(first!=-1 && first==last) {
    			index=Math.min(first, index);
    		}
    	}
    	if(index!=s.length())
    		return index;
    	return -1;
    }
}
